from django.db import models


# Create your models here.
# 学生
class Student(models.Model):
    SEX_CHON = [(0, '女'),
                (1, '男')]

    name = models.CharField('姓名', max_length=20)
    age = models.SmallIntegerField('年龄', null=True, blank=True)
    sex = models.SmallIntegerField('性别', choices=SEX_CHON)
    c_time = models.DateTimeField('创建时间', auto_now_add=True)
    x_time = models.DateTimeField('修改时间', auto_now=True)
    is_delete = models.BooleanField('逻辑删除', default=False)
    # 一对多的关联字段 在多的一方关联
    classes = models.ForeignKey('Classes', related_name='manager', on_delete=models.SET_NULL, null=True,
                                verbose_name='班级')

    # viewsets.ModelViewSet 已经写好了增删改查 重写里面的删除：实现逻辑删除
    def delete(self, using=None, keep_parents=False):
        self.is_delete = True
        self.save()  # 保存

    def __str__(self):
        return f'{self.name}{self.age}{self.sex}{self.classes}'

# 班级
class Classes(models.Model):
    num = models.CharField(max_length=20, verbose_name='班级',help_text='班级名称') # help_text= 表示:接口文档对字段的解释
    schedule = models.CharField(max_length=20, verbose_name='班期',help_text='班期')
    c_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
    x_time = models.DateTimeField(verbose_name='修改时间', auto_now=True)
    is_delete = models.BooleanField(verbose_name='逻辑删除', default=False,help_text='逻辑删除')  # 定义逻辑删除的字段

    #  viewsets.ModelViewSet 已经写好了增删改查 重写里面的删除：实现逻辑删除
    def delete(self, using=None, keep_parents=False):
        self.is_delete = True  # 删除
        self.save()  # 保存数据

    # 修改打印的对象 在前端展示
    def __str__(self):
        return f'{self.num}{self.schedule}'

